import {apiPost} from '@/utils/api';
import {useUserStore} from '@/store/modules/user';
import router from '@/router';
import type {Dish} from '@/types/entity';

/**
 * 检查用户是否登录，如果未登录则跳转到登录页面
 * @returns 是否已登录
 */
const checkLogin = () => {
    const userStore = useUserStore();
    if (!userStore.id) {
        // 未登录，跳转到登录页面，并携带当前路径作为重定向参数
        router.push({path: '/login', query: {redirect: router.currentRoute.value.fullPath}});
        return false;
    }
    return true;
};

/**
 * 加入购物车
 * @param dish 菜品信息
 */
export const addToCart = async (dish: Dish) => {
    // 检查用户是否登录
    if (!checkLogin()) {
        return;
    }

    await apiPost('/cart/add', {dishId: dish.dishId, quantity: 1});
};

/**
 * 立即购买
 * @param dish 菜品信息
 */
export const order = (dish: Dish) => {
    // 检查用户是否登录
    if (!checkLogin()) {
        return;
    }

    // 跳转到立即购买页面，并传递菜品信息
    router.push({
        path: '/order/confirm',
        query: {
            dishId: dish.dishId.toString()
        },
    });
};